package reggie.ruiji.untils;

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;

import java.util.Date;
import java.util.Map;

public class JwtUtils
{
    private static String signKey="itheima"; //秘钥名称
    private static Long expTime=4320000L;//令牌有效时期的参数

    //下发JWT令牌(String类型)
    public static String getJWT(Map<String, Object> claims)
    {
        String jwt= Jwts.builder()
                .addClaims(claims)  //添加自定义内容，为有效载荷部分
                .signWith(SignatureAlgorithm.HS256,signKey)   //指定签名算法、秘钥
                .setExpiration(new Date(System.currentTimeMillis()+expTime))  //设置令牌有效时期
                .compact(); //生成JWT令牌
        return jwt;
    }

    //解析JWT令牌 ，返回JWT令牌中的有效载荷部分(自定义内容)
    public static Claims parseJWT(String jwt)
    {
        Claims claims=Jwts.parser()
                .setSigningKey(signKey)
                .parseClaimsJws(jwt).getBody();
        return claims;
    }

}